Video encoders convert raw video data into a standard-specified bit stream. The bit stream is then transmitted over a communications medium and reconstructed into video by a video decoder. The conversion from video to bit stream is performed to achieve compression without sacrificing the quality of the reconstructed video. Thus, encoders must perform well in terms of a speed-quality-bit rate tradeoff. Coding processes, therefore, allow for the improvement of various parameters by allowing for mode decisions to be made. Video standards such as, for example, MPEG and H.263 specify the form of the bit stream syntax, but allow for some encoding optimizations such as, for example, algorithm optimization and mode decision optimization. Such optimizations may be desirable when a particular application for an encoder calls for an improvement in one or more of the parameters in the speed-quality-bit rate tradeoff than is called for with another application. For example, when an application requires real-time encoding, the speed of the coding becomes critical. However, when an application calls for off-line coding, the quality and the coding efficiency may be more critical.
Prior to the present invention, an exhaustive approach to mode selection in the coding process was often used. In such an exhaustive approach, each possible mode is tried for each mode decision, the cost corresponding to each mode is evaluated, and the mode with the lowest cost is selected. Such an approach is oftentimes impractical due to complexity and processing time issues.